/**
 * vueI18n 国际化
 * @author shenyc
 */
import { createI18n } from "vue-i18n";
import { GlobalConfig } from "@/config";

import enCustom from "./modules/en";
import cnCustom from "./modules/zh-CN";

import enElmentPlus from "element-plus/es/locale/lang/en";
import cnElmentPlus from "element-plus/es/locale/lang/zh-cn";

const messages = {
    en: {
        langName: "English",
        ...enCustom,
        ...enElmentPlus,
    },
    "zh-cn": {
        langName: "简体中文",
        ...cnCustom,
        ...cnElmentPlus,
    },
};

// 默认读取本地存储语言设置
const defaultLocale = (localStorage.getItem(GlobalConfig.APP_LANGUAGE_KEY) || "zh-cn") as LanguageKey;

/** I18n */
export const i18n = createI18n({
    legacy: false, // 如果要支持 composition API，此项必须设置为 false
    locale: defaultLocale, // 设置默认语言类型
    fallbackLocale: "zh-cn", // 不存在默认则为英文
    globalInjection: true, // true 注册$t方法到Vue组件,可以在组件中直接使用 {{ $t('router.home') }}
    messages: messages, //
});
